<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 一、symbol数据类型 
        // symbol ： 独一无二的值，类似  id 唯一标识符
        // 创建symbol
        // symbol 一旦生成 就没有重复的symbol 
        // let s =  Symbol("key1");  // key1 类似 注释 
        // console.log(s);
        // console.log(typeof s);
        // let s2 = Symbol("key1");
        // console.log(s==s2);


        // 1.模拟私有成员 ；
        // let person = {
        //     name:"张三",
        //     age:20,
        //     [Symbol("weight")]:"100kg"
        // }

        // console.log(person);
        // console.log(person.name);
        // console.log(person.age);
        // // console.log(person.weight)
        // console.log(person[Symbol("weight")])

        // 2.特殊的需求

        // 通过键名来区分 类别 ，只要每个类别的键值不同就可以区分开了。
        // let cate = {
        //     person:Symbol("人类"),
        //     animal:Symbol("动物")
        // }


        // function getCate(type){
        //     if(type==cate.person){
        //         console.log("人类")
        //     }else{
        //         console.log("动物")
        //     }
        // }
        // getCate(cate.person);


        // 二、bigInt ： 大整型 
        // js 支持的最大数 2 ** 1024；
        // js 大于 2 ** 53 计算不准确了。
        // Math.pow(2,53) ;  2 ** 53
        // console.log( 2 ** 54);
        // console.log( 2 ** 54 +1);
        // console.log( 2 ** 54 +2);
        // console.log( 2 ** 54 +3);
        // 创建bigInt
        // 方式一： 
        // let num = BigInt(200);
        // console.log(num);
        // console.log(typeof num);

        // 方式二： 直接在数字后面加 n
        // let num = 200n;
        // console.log(num);

        // bigint 计算： bigInt 只能 和bigInt运算；
        // var num1 = 200n;
        // var num2 = 10n;
        // var res = num1 + num2;
        // console.log(res);

        console.log(2n**54n)
        console.log(2n**54n+1n);
        console.log(2n**54n+2n);
        console.log(2n**54n+3n);
        console.log(2n**54n+4n);
    </script>
</body>
</html>